<?php

/**
 * Фильтр подключения абстрактного интерфейса для работы с СУБД.
 *
 */
class Kernel_Wrapper_Db extends Kernel_Wrapper {

    /**
     * Оборачивает цепочку фильтров в обработчик исключений.
     *
     */
    public function run() {
        Zend_Loader::loadClass('Kernel_Db');
        try {
            database::connect();
            $this->_chain();
        } catch (Kernel_Db_Exception $e) {
            if ($e->isRuntime()) {
                throw new Kernel_Filter_Exception_InternalError($e->getMessage(), $e->getContext());
            } else {
                throw new Kernel_Filter_Exception_ServiceUnavailable($e->getMessage());
            }
        }
    }
}
